#ifndef MINPOSITIONMATRIX_H_
#define MINPOSITIONMATRIX_H_

#include <vector>

class MinPositionMatrix
{
public:
	MinPositionMatrix(uint, std::vector<uint>);
	virtual ~MinPositionMatrix();
	uint getMin() { return min; }
	void updateWithPosition(uint, uint);
	void showMatrix();
	
private:
	void updateEq(uint, uint);
	void updateDiff(uint, uint, uint);
	void cleanPosition(uint);
	bool isComplete(uint);
	uint getMaxOffset(uint);
	
	uint ** positionMatrix;
	uint numPalavras;
	uint min;
};

#endif /*MINPOSITIONMATRIX_H_*/
